Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


meshchatx/src/frontend/components/blocked/BlockedPage.vue c14917c49feb109cfc8bbc708fb00f4b3da235dd (c14917c4) Text, 18.96 KB

T8b949e<!-- SPDX-License-Identifier: 0BSD -->

Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex flex-col flex-1 overflow-hidden min-w-0 bg-linear-to-br from-slate-50 via-slate-100 to-white dark:from-zinc-950 dark:via-zinc-900 dark:to-zinc-900"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-y-auto overflow-x-hidden w-full px-3 sm:px-5 md:px-5 lg:px-8 py-3 sm:py-4 min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-0 w-full max-w-6xl xl:max-w-7xl mx-auto min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"w-full border-b border-gray-200/60 dark:border-zinc-800/60 py-4 sm:py-6 flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"min-w-0 space-y-1"Tb4b4b4>
Tb4b4b4<Tff7b72h1 Te6edf3classTff7b72=Ta5d6ff"text-2xl sm:text-3xl font-bold text-gray-900 dark:text-white tracking-tight"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"banishment.title"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72h1Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-600 dark:text-gray-400"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"banishment.description"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-2 sm:shrink-0"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"relative flex-1 sm:w-64 lg:w-80"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"magnify"
Te6edf3classTff7b72=Ta5d6ff"absolute left-3 top-1/2 -translate-y-1/2 size-5 shrink-0 text-gray-400 pointer-events-none z-10"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3searchQueryTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"input-field pl-11!"
Tb4b4b4:Te6edf3placeholderTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'banishment.search_placeholder'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3inputTff7b72=Ta5d6ff"Te6edf3onSearchInputTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"secondary-chip p-2.5!"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'common.refresh'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3loadBlockedDestinationsTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"refresh"
Te6edf3classTff7b72=Ta5d6ff"size-5"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Tb4b4b4{ Ta5d6ff'animate-spin-reverse'Tff7b72: Te6edf3isLoading Tb4b4b4}Ta5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72template Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isLoading Tff7b72&& Te6edf3filteredBlockedIdentitiesTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 py-4 sm:py-6"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3i Tff7b72in T79c0ff5Ta5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Ta5d6ff'skel-' Tff7b72+ Te6edf3iTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"banishment-card overflow-hidden p-5 space-y-4 min-w-0"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-start gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"size-10 rounded-xl bg-gray-200 dark:bg-zinc-700 animate-pulse shrink-0" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 min-w-0 space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"h-4 w-28 bg-gray-200 dark:bg-zinc-700 rounded-sm animate-pulse" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"h-3 w-44 bg-gray-100 dark:bg-zinc-800 rounded-sm animate-pulse" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-1.5"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"h-3 w-20 bg-gray-100 dark:bg-zinc-800 rounded-sm animate-pulse" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"h-8 bg-gray-100 dark:bg-zinc-800 rounded-lg animate-pulse" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"h-9 bg-gray-100 dark:bg-zinc-800 rounded-xl animate-pulse" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3v-else-ifTff7b72=Ta5d6ff"Te6edf3filteredBlockedIdentitiesTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex flex-col items-center justify-center py-16 sm:py-20 text-center"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-4 bg-gray-100 dark:bg-zinc-800 rounded-full mb-4 text-gray-400 dark:text-zinc-600"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"check-circle" Te6edf3classTff7b72=Ta5d6ff"size-12" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-lg font-semibold text-gray-900 dark:text-white"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"banishment.no_items"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-500 dark:text-gray-400 max-w-sm mx-auto mt-1"Tb4b4b4>
Tff7b72{{ Te6edf3searchQuery Tff7b72? Te6edf3$tTb4b4b4(Ta5d6ff"nomadnet.no_search_results_peers"Tb4b4b4) Tff7b72: Te6edf3$tTb4b4b4(Ta5d6ff"nomadnet.no_announces_yet"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3v-else Te6edf3classTff7b72=Ta5d6ff"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 py-4 sm:py-6"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3identity Tff7b72in Te6edf3filteredBlockedIdentitiesTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3identityTb4b4b4.Te6edf3identity_hashTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"banishment-card overflow-hidden group min-w-0"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-5 space-y-4"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-start gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-2 bg-red-100 dark:bg-red-900/30 rounded-xl shrink-0"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"account-off"
Te6edf3classTff7b72=Ta5d6ff"size-5 text-red-600 dark:text-red-400"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap items-center gap-1.5 mb-1"Tb4b4b4>
Tb4b4b4<Tff7b72h3
Te6edf3classTff7b72=Ta5d6ff"text-sm font-bold text-gray-900 dark:text-white truncate max-w-full"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3identityTb4b4b4.Te6edf3display_name Tff7b72|| Te6edf3$tTb4b4b4(Ta5d6ff'call.unknown'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3identityTb4b4b4.Te6edf3display_name Tff7b72|| Te6edf3$tTb4b4b4(Ta5d6ff"call.unknown"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3identityTb4b4b4.Te6edf3is_nodeTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"px-2 py-0.5 rounded-full bg-blue-100 dark:bg-blue-900/40 text-blue-700 dark:text-blue-300 text-[10px] font-bold uppercase tracking-wider shrink-0"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"banishment.node"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3v-else
Te6edf3classTff7b72=Ta5d6ff"px-2 py-0.5 rounded-full bg-purple-100 dark:bg-purple-900/40 text-purple-700 dark:text-purple-300 text-[10px] font-bold uppercase tracking-wider shrink-0"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"banishment.user"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3identityTb4b4b4.Te6edf3is_rns_blackholedTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"px-2 py-0.5 rounded-full bg-zinc-100 dark:bg-zinc-800 text-zinc-700 dark:text-zinc-300 text-[10px] font-bold uppercase tracking-wider border border-zinc-200 dark:border-zinc-700 shrink-0"
Te6edf3titleTff7b72=Ta5d6ff"Blackholed at Reticulum transport layer"
Tb4b4b4>
RNS Blackhole
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p
Te6edf3classTff7b72=Ta5d6ff"text-xs font-mono text-gray-500 dark:text-gray-400 truncate"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3identityTb4b4b4.Te6edf3identity_hashTa5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3identityTb4b4b4.Te6edf3identity_hash Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3identityTb4b4b4.Te6edf3blocked_destinationsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Ta5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72p
Te6edf3classTff7b72=Ta5d6ff"text-xs font-semibold text-gray-600 dark:text-gray-300 mb-2 uppercase tracking-wide"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"banishment.blocked_destinations"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-1"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3dest Tff7b72in Te6edf3identityTb4b4b4.Te6edf3blocked_destinationsTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3destTb4b4b4.Te6edf3destination_hashTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between gap-2 px-3 py-2 bg-gray-50 dark:bg-zinc-800/50 rounded-lg text-xs"
Tb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3classTff7b72=Ta5d6ff"font-mono text-gray-500 dark:text-gray-400 truncate min-w-0"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3destTb4b4b4.Te6edf3destination_hashTa5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3destTb4b4b4.Te6edf3destination_hash Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3destTb4b4b4.Te6edf3created_atTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"shrink-0 text-gray-400 dark:text-zinc-500"Tb4b4b4>
Tff7b72{{ Te6edf3formatTimeAgoTb4b4b4(Te6edf3destTb4b4b4.Te6edf3created_atTb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3identityTb4b4b4.Te6edf3rns_reasonTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"text-xs italic text-zinc-500 dark:text-zinc-400 leading-relaxed"
Tb4b4b4>
Te6edf3&ldquo;Tff7b72{{ Te6edf3identityTb4b4b4.Te6edf3rns_reason Tff7b72}}Te6edf3&rdquo;
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3identityTb4b4b4.Te6edf3rns_sourceTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"text-[10px] text-zinc-500 dark:text-zinc-500 font-mono truncate"
Tb4b4b4>
Source: Tff7b72{{ Te6edf3identityTb4b4b4.Te6edf3rns_source Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72button Te6edf3classTff7b72=Ta5d6ff"primary-chip w-full justify-center" Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3onUnblockTb4b4b4(Te6edf3identityTb4b4b4)Ta5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"check-circle" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"banishment.lift_banishment"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>

Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3DialogUtils Tff7b72from Ta5d6ff"../../js/DialogUtils"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72import Te6edf3Utils Tff7b72from Ta5d6ff"../../js/Utils"Tb4b4b4;

Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"BlockedPage"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3MaterialDesignIconTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3blockedIdentitiesTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3isLoadingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3searchQueryTff7b72: Ta5d6ff""Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTff7b72: Tb4b4b4{
Te6edf3allBlockedIdentitiesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657ObjectTb4b4b4.Te6edf3valuesTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3blockedIdentitiesTb4b4b4)Tb4b4b4.Te6edf3sortTb4b4b4(Tb4b4b4(Te6edf3aTb4b4b4, Te6edf3bTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3nameA Tff7b72= Tb4b4b4(Te6edf3aTb4b4b4.Te6edf3display_name Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3nameB Tff7b72= Tb4b4b4(Te6edf3bTb4b4b4.Te6edf3display_name Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3nameATb4b4b4.Te6edf3localeCompareTb4b4b4(Te6edf3nameBTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3filteredBlockedIdentitiesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3searchQueryTb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3allBlockedIdentitiesTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3query Tff7b72= Tff7b72thisTb4b4b4.Te6edf3searchQueryTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3allBlockedIdentitiesTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3identityTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3identityTb4b4b4.Te6edf3identity_hashTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3queryTb4b4b4)Tb4b4b4) Tff7b72return Tff7b72trueTb4b4b4;
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3identityTb4b4b4.Te6edf3display_name Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3queryTb4b4b4)Tb4b4b4) Tff7b72return Tff7b72trueTb4b4b4;
Tff7b72return Te6edf3identityTb4b4b4.Te6edf3blocked_destinationsTb4b4b4.Te6edf3someTb4b4b4(Tb4b4b4(Te6edf3dTb4b4b4) Tb4b4b4=> Te6edf3dTb4b4b4.Te6edf3destination_hashTb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3queryTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3loadBlockedDestinationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Tff7b72async Te6edf3loadBlockedDestinationsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isLoading Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/blocked-destinations"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3blockedHashes Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3blocked_destinations Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4;

Tff7b72let Te6edf3reticulumBlackholed Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3rnsResponse Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/reticulum/blackhole"Tb4b4b4)Tb4b4b4;
Te6edf3reticulumBlackholed Tff7b72= Te6edf3rnsResponseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3blackholed_identities Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to load Reticulum blackhole"Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3identityMap Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;

Tff7b72const Te6edf3ensureIdentity Tff7b72= Tb4b4b4(Te6edf3identityHashTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3identityMapTb4b4b4[Te6edf3identityHashTb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3identityMapTb4b4b4[Te6edf3identityHashTb4b4b4] Tff7b72= Tb4b4b4{
Te6edf3identity_hashTff7b72: Te6edf3identityHashTb4b4b4,
Te6edf3display_nameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3is_nodeTff7b72: Tff7b72falseTb4b4b4,
Te6edf3blocked_destinationsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3is_rns_blackholedTff7b72: Tff7b72falseTb4b4b4,
Te6edf3rns_sourceTff7b72: Tff7b72nullTb4b4b4,
Te6edf3rns_reasonTff7b72: Tff7b72nullTb4b4b4,
Te6edf3rns_untilTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3identityMapTb4b4b4[Te6edf3identityHashTb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4;

Tff7b72const Te6edf3processBlockedHash Tff7b72= Tff7b72async Tb4b4b4(Te6edf3blockedTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3hash Tff7b72= Te6edf3blockedTb4b4b4.Te6edf3destination_hashTb4b4b4;
Tff7b72let Te6edf3identityHash Tff7b72= Te6edf3hashTb4b4b4;
Tff7b72let Te6edf3displayName Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72let Te6edf3isNode Tff7b72= Tff7b72falseTb4b4b4;

Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3announceResponse Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/announces"Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{
Te6edf3destination_hashTff7b72: Te6edf3hashTb4b4b4,
Te6edf3include_blockedTff7b72: Tff7b72trueTb4b4b4,
Te6edf3limitTff7b72: T79c0ff1Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;

Tff7b72if Tb4b4b4(Te6edf3announceResponseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announces Tff7b72&& Te6edf3announceResponseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announcesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3announce Tff7b72= Te6edf3announceResponseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announcesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Te6edf3identityHash Tff7b72= Te6edf3announceTb4b4b4.Te6edf3identity_hash Tff7b72|| Te6edf3hashTb4b4b4;
Te6edf3displayName Tff7b72= Te6edf3announceTb4b4b4.Te6edf3display_name Tff7b72|| Tff7b72nullTb4b4b4;
Te6edf3isNode Tff7b72= Te6edf3announceTb4b4b4.Te6edf3aspect Tff7b72=== Ta5d6ff"nomadnetwork.node"Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// ignore error
Tb4b4b4}

Tff7b72const Te6edf3identity Tff7b72= Te6edf3ensureIdentityTb4b4b4(Te6edf3identityHashTb4b4b4)Tb4b4b4;
Te6edf3identityTb4b4b4.Te6edf3display_name Tff7b72= Te6edf3identityTb4b4b4.Te6edf3display_name Tff7b72|| Te6edf3displayNameTb4b4b4;
Te6edf3identityTb4b4b4.Te6edf3is_node Tff7b72= Te6edf3identityTb4b4b4.Te6edf3is_node Tff7b72|| Te6edf3isNodeTb4b4b4;
Te6edf3identityTb4b4b4.Te6edf3blocked_destinationsTb4b4b4.Te6edf3pushTb4b4b4(Tb4b4b4{
Te6edf3destination_hashTff7b72: Te6edf3hashTb4b4b4,
Te6edf3created_atTff7b72: Te6edf3blockedTb4b4b4.Te6edf3created_at Tff7b72|| Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;

Tff7b72await Tffa657PromiseTb4b4b4.Te6edf3allTb4b4b4(Te6edf3blockedHashesTb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Te6edf3blockedTb4b4b4) Tb4b4b4=> Te6edf3processBlockedHashTb4b4b4(Te6edf3blockedTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;

Tff7b72for Tb4b4b4(Tff7b72const Tb4b4b4[Te6edf3hashTb4b4b4, Te6edf3infoTb4b4b4] Tff7b72of Tffa657ObjectTb4b4b4.Te6edf3entriesTb4b4b4(Te6edf3reticulumBlackholedTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3identity Tff7b72= Te6edf3ensureIdentityTb4b4b4(Te6edf3hashTb4b4b4)Tb4b4b4;
Te6edf3identityTb4b4b4.Te6edf3is_rns_blackholed Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3identityTb4b4b4.Te6edf3rns_source Tff7b72= Te6edf3infoTb4b4b4.Te6edf3source Tff7b72|| Tff7b72nullTb4b4b4;
Te6edf3identityTb4b4b4.Te6edf3rns_reason Tff7b72= Te6edf3infoTb4b4b4.Te6edf3reason Tff7b72|| Tff7b72nullTb4b4b4;
Te6edf3identityTb4b4b4.Te6edf3rns_until Tff7b72= Te6edf3infoTb4b4b4.Te6edf3until Tff7b72|| Tff7b72nullTb4b4b4;

Tff7b72if Tb4b4b4(Tff7b72!Te6edf3identityTb4b4b4.Te6edf3display_nameTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3announceResponse Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/announces"Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{
Te6edf3identity_hashTff7b72: Te6edf3hashTb4b4b4,
Te6edf3include_blockedTff7b72: Tff7b72trueTb4b4b4,
Te6edf3limitTff7b72: T79c0ff1Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3announceResponseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announces Tff7b72&& Te6edf3announceResponseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announcesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3announce Tff7b72= Te6edf3announceResponseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3announcesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Te6edf3identityTb4b4b4.Te6edf3display_name Tff7b72= Te6edf3announceTb4b4b4.Te6edf3display_name Tff7b72|| Tff7b72nullTb4b4b4;
Te6edf3identityTb4b4b4.Te6edf3is_node Tff7b72= Te6edf3announceTb4b4b4.Te6edf3aspect Tff7b72=== Ta5d6ff"nomadnetwork.node"Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// ignore
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Tff7b72thisTb4b4b4.Te6edf3blockedIdentities Tff7b72= Te6edf3identityMapTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"banishment.failed_load_banished"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isLoading Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3onUnblockTb4b4b4(Te6edf3identityTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(
Tff7b72!Tb4b4b4(Tff7b72await Te6edf3DialogUtilsTb4b4b4.Te6edf3confirmTb4b4b4(
Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"banishment.lift_banishment_confirm"Tb4b4b4, Tb4b4b4{
Te6edf3nameTff7b72: Te6edf3identityTb4b4b4.Te6edf3display_name Tff7b72|| Te6edf3identityTb4b4b4.Te6edf3identity_hashTb4b4b4,
Tb4b4b4}Tb4b4b4)
Tb4b4b4)Tb4b4b4)
Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}

Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3targetHash Tff7b72=
Te6edf3identityTb4b4b4.Te6edf3blocked_destinationsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0
Tff7b72? Te6edf3identityTb4b4b4.Te6edf3blocked_destinationsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4.Te6edf3destination_hash
Tff7b72: Te6edf3identityTb4b4b4.Te6edf3identity_hashTb4b4b4;

Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/blocked-destinations/Tffd700${Te6edf3targetHashTffd700}Ta5d6ff`Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadBlockedDestinationsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"banishment.banishment_lifted"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"banishment.failed_lift_banishment"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3onSearchInputTb4b4b4(Tb4b4b4) Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3formatTimeAgoTb4b4b4(Te6edf3datetimeStringTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3UtilsTb4b4b4.Te6edf3formatTimeAgoTb4b4b4(Te6edf3datetimeStringTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>

Tb4b4b4<Tff7b72style Te6edf3scopedTb4b4b4>
Tb4b4b4@Tff7b72reference Ta5d6ff"../../style.css"Tb4b4b4;
Tb4b4b4.T56d364banishment-card Tb4b4b4{
@apply bg-white Te6edf3darkTb4b4b4:Te6edf3bg-zinc-900Tff7b72/T79c0ff95 Tff7b72border Tff7b72borderTff7b72-Tff7b72grayT79c0ff-200Tff7b72/T79c0ff70 Te6edf3darkTff7b72:Tff7b72borderTff7b72-Te6edf3zinc-800Tff7b72/T79c0ff80 Te6edf3rounded-2xl Te6edf3shadow-sm Tff7b72transitionTff7b72-Tff7b72all Te6edf3duration-200Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364banishment-cardTb4b4b4:Tf0883ehover Tb4b4b4{
@apply shadow-md border-gray-300/80 Te6edf3darkTb4b4b4:Tff7b72borderTff7b72-Te6edf3zinc-700Tff7b72/T79c0ff80Tb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364input-field Tb4b4b4{
@apply bg-gray-50/90 Te6edf3darkTb4b4b4:Te6edf3bg-zinc-800Tff7b72/T79c0ff80 Tff7b72border Tff7b72borderTff7b72-Tff7b72grayT79c0ff-200 Te6edf3darkTff7b72:Tff7b72borderTff7b72-Te6edf3zinc-700 Tff7b72textTff7b72-Te6edf3sm Te6edf3rounded-xl Te6edf3focusTff7b72:Te6edf3ring-2 Te6edf3focusTff7b72:Te6edf3ring-blue-400 Te6edf3focusTff7b72:Tff7b72borderTff7b72-Tff7b72blueT79c0ff-400 Te6edf3darkTff7b72:Te6edf3focusTff7b72:Te6edf3ring-blue-500 Te6edf3darkTff7b72:Te6edf3focusTff7b72:Tff7b72borderTff7b72-Tff7b72blueT79c0ff-500 Tff7b72block Te6edf3w-full Te6edf3p-3 Tff7b72textTff7b72-Tff7b72grayT79c0ff-900 Te6edf3darkTff7b72:Tff7b72textTff7b72-Tff7b72grayT79c0ff-100 Tff7b72transitionTb4b4b4;
Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72styleTb4b4b4>


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────